#ifndef __TINPUT_ENUM__
#define __TINPUT_ENUM__

namespace TsiU
{
	enum InputDeviceType_t
	{
		E_IDT_Undefined = -1,
		E_IDT_Mouse = 0,
		E_IDT_KeyBoard,
		E_IDT_Pad
	};

	enum KeyState_t
	{
		E_KS_Up = 0,
		E_KS_Down
	};

	enum Key_t
	{
		E_INVALID_INPUT_ID = -1,

		E_JOYSTK_X = 0,
		E_JOYSTK_Y,
		E_JOYSTK_Z,
		E_JOYSTK_RX,
		E_JOYSTK_RY,
		E_JOYSTK_RZ,
		E_JOYSTK_SLIDER1,
		E_JOYSTK_SLIDER2,
		E_JOYSTK_POV1,
		E_JOYSTK_POV2,
		E_JOYSTK_POV3,
		E_JOYSTK_POV4,
		E_JOYSTK_BUTTON1,E_JOYSTK_BUTTON2,E_JOYSTK_BUTTON3,E_JOYSTK_BUTTON4,
		E_JOYSTK_BUTTON5,E_JOYSTK_BUTTON6,E_JOYSTK_BUTTON7,E_JOYSTK_BUTTON8,
		E_JOYSTK_BUTTON9,E_JOYSTK_BUTTON10,E_JOYSTK_BUTTON11,E_JOYSTK_BUTTON12,
		E_JOYSTK_BUTTON13,E_JOYSTK_BUTTON14,E_JOYSTK_BUTTON15,E_JOYSTK_BUTTON16,
		E_JOYSTK_BUTTON17,E_JOYSTK_BUTTON18,E_JOYSTK_BUTTON19,E_JOYSTK_BUTTON20,
		E_JOYSTK_BUTTON21,E_JOYSTK_BUTTON22,E_JOYSTK_BUTTON23,E_JOYSTK_BUTTON24,
		E_JOYSTK_BUTTON25,E_JOYSTK_BUTTON26,E_JOYSTK_BUTTON27,E_JOYSTK_BUTTON28,
		E_JOYSTK_BUTTON29,E_JOYSTK_BUTTON30,E_JOYSTK_BUTTON31,E_JOYSTK_BUTTON32,
		E_JOYSTK_ENDITEMS,

		E_MOUSE_X,
		E_MOUSE_Y,
		E_MOUSE_Z_FORWARD,
		E_MOUSE_Z_BACK,
		E_MOUSE_BUTTON1,E_MOUSE_BUTTON2,E_MOUSE_BUTTON3,E_MOUSE_BUTTON4,
		E_MOUSE_BUTTON5,E_MOUSE_BUTTON6,E_MOUSE_BUTTON7,E_MOUSE_BUTTON8,
		E_MOUSE_ENDITEMS,

		E_KB_ESCAPE,         
		E_KB_1,               
		E_KB_2,               
		E_KB_3,               
		E_KB_4,               
		E_KB_5,               
		E_KB_6,               
		E_KB_7,               
		E_KB_8,               
		E_KB_9,               
		E_KB_0,               
		E_KB_MINUS,       
		E_KB_EQUALS,     
		E_KB_BACK,        
		E_KB_TAB,           
		E_KB_Q,              
		E_KB_W,              
		E_KB_E,               
		E_KB_R,               
		E_KB_T,               
		E_KB_Y,               
		E_KB_U,               
		E_KB_I,               
		E_KB_O,              
		E_KB_P,               
		E_KB_LBRACKET, 
		E_KB_RBRACKET, 
		E_KB_RETURN,     
		E_KB_LCONTROL, 
		E_KB_A,               
		E_KB_S,               
		E_KB_D,              
		E_KB_F ,              
		E_KB_G,              
		E_KB_H,               
		E_KB_J ,              
		E_KB_K,               
		E_KB_L,               
		E_KB_SEMICOLON,   
		E_KB_APOSTROPHE, 
		E_KB_GRAVE,           
		E_KB_LSHIFT,          
		E_KB_BACKSLASH,   
		E_KB_Z,               
		E_KB_X,               
		E_KB_C,               
		E_KB_V,               
		E_KB_B,               
		E_KB_N,               
		E_KB_M,               
		E_KB_COMMA,      
		E_KB_PERIOD,      
		E_KB_SLASH,       
		E_KB_RSHIFT,      
		E_KB_MULTIPLY ,  
		E_KB_LMENU,       
		E_KB_SPACE,       
		E_KB_CAPITAL,    
		E_KB_F1,              
		E_KB_F2,              
		E_KB_F3,              
		E_KB_F4,              
		E_KB_F5,              
		E_KB_F6,              
		E_KB_F7,              
		E_KB_F8,              
		E_KB_F9,              
		E_KB_F10,            
		E_KB_NUMLOCK ,  
		E_KB_SCROLL,     
		E_KB_NUMPAD7,   
		E_KB_NUMPAD8,   
		E_KB_NUMPAD9,   
		E_KB_SUBTRACT, 
		E_KB_NUMPAD4,   
		E_KB_NUMPAD5,   
		E_KB_NUMPAD6,   
		E_KB_ADD,          
		E_KB_NUMPAD1,       
		E_KB_NUMPAD2,       
		E_KB_NUMPAD3,       
		E_KB_NUMPAD0,       
		E_KB_DECIMAL,       
		E_KB_OEM_102,       
		E_KB_F11,             
		E_KB_F12,             
		E_KB_F13,             
		E_KB_F14,             
		E_KB_F15,             
		E_KB_KANA,          
		E_KB_ABNT_C1,    
		E_KB_CONVERT,    
		E_KB_NOCONVERT,
		E_KB_YEN,            
		E_KB_ABNT_C2,
		E_KB_NUMPADEQUALS,
		E_KB_PREVTRACK,   
		E_KB_AT,              
		E_KB_COLON,          
		E_KB_UNDERLINE,    
		E_KB_KANJI,           
		E_KB_STOP,            
		E_KB_AX,              
		E_KB_UNLABELED,    
		E_KB_NEXTTRACK,   
		E_KB_NUMPADENTER,
		E_KB_RCONTROL,     
		E_KB_MUTE,            
		E_KB_CALCULATOR, 
		E_KB_PLAYPAUSE,    
		E_KB_MEDIASTOP,   
		E_KB_VOLUMEDOWN,
		E_KB_VOLUMEUP,     
		E_KB_WEBHOME,      
		E_KB_DIVIDE,          
		E_KB_SYSRQ,           
		E_KB_RMENU,           
		E_KB_PAUSE,           
		E_KB_HOME,            
		E_KB_UP,              
		E_KB_PRIOR,        
		E_KB_LEFT,           
		E_KB_RIGHT,        
		E_KB_END,            
		E_KB_DOWN,        
		E_KB_NEXT,          
		E_KB_INSERT,       
		E_KB_DELETE,
		E_KB_ENDITEMS,

		E_INPUT_ID_NUM
	};
}

#endif